#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <signal.h>
struct sigaction act,oact;//act是一个输入值，用户设定给函数的，执行用户设定的处理方式
                          //oact是一个输出值，通过这个对象可以得到,信号修改前的处理方式
void handler(int signo)
{
    printf("Get signal %d\n",signo);

    sigaction(2,&oact,NULL);//捕捉2号信号,重新将2号信号恢复原来的处理
}
int main(void)
{
    memset(&act,0,sizeof(act));
    memset(&oact,0,sizeof(oact));
    act.sa_handler=handler;//自定义捕捉函数
    act.sa_flags=0;
    sigaction(2,&act,&oact);//捕捉2号信号
    while(1)
    {
        printf("Process Running\n");
        sleep(1);
    }
    return 0;
}

